package com.deliccio.controller;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.deliccio.entitys.Cliente;
import com.deliccio.entitys.Menu;
import com.deliccio.entitys.Pedidos;
import com.deliccio.entitys.Ranking;
import com.deliccio.entitys.Usuario;
import com.deliccio.service.CocicnaService;
import com.deliccio.service.PrincipalService;
import com.deliccio.util.Constantes;

@Controller
@RequestMapping("cocina")
public class CocinaController{

	@Autowired
	private PrincipalService principalService;
		
	@Autowired
	private CocicnaService cocinaService;
	
	@RequestMapping(method=RequestMethod.GET)
	public String cocina(@RequestParam(required=false) Integer inter,Model model,HttpSession session){
		Usuario usuario=(Usuario) session.getAttribute(Constantes.SESION_USUARIO);
		Cliente cliente=(Cliente) session.getAttribute(Constantes.SESION_CLIENTE);
		List<Menu> menus=null;
		if(usuario != null){		
			session.setAttribute(Constantes.SESION_USUARIO,usuario);
			menus=principalService.obtenerMenusUsuario(usuario);
		}
		else if(cliente != null){
			session.setAttribute(Constantes.SESION_CLIENTE,cliente);
			menus=principalService.obtenerMenusCliente(cliente);
		}
		if(usuario == null && cliente == null){
			menus=principalService.obtenerMenus();
		}
		if(menus != null){
			model.addAttribute("menus",menus);
		}
		session.setAttribute(Constantes.SESION_COD_INTER,inter);
		List<Ranking> lstProductos = principalService.listaProductos();
		model.addAttribute("lstProductos",lstProductos);
		return "home";
	}
			
	
	@RequestMapping(value="/cocina",method=RequestMethod.GET)
	public String obtenerEnCocina(Model model,HttpSession session){
		Usuario usuario=(Usuario) session.getAttribute(Constantes.SESION_USUARIO);
		List<Menu> menus =principalService.obtenerMenusUsuario(usuario);
		model.addAttribute("menus",menus);		
		return "cocina/listaPedidosCocina";
	}
	
	@RequestMapping(value="/obtenerPedidosEnCocina",method=RequestMethod.GET)
	public @ResponseBody List<Pedidos> obtenerPedidosEnCocina(Model model,HttpSession session){
		Usuario usuario=(Usuario) session.getAttribute(Constantes.SESION_USUARIO);			
		return  cocinaService.obtenerPedidosPorCocina(usuario);
	}
	
	
}
